---
displayed_sidebar: "Chinese"
---

# sha2

## 功能

计算 SHA-2 系列哈希函数 (SHA-224/SHA-256/SHA-384/SHA-512)。

## 语法

```Haskell
sha2(expr, hash_length)
```

## 参数说明

`expr`: 待计算的字符串，支持的数据类型为 VARCHAR。

`hash_length`: 结果所需要的位长度，值必须为 224, 256, 384, 512 或者 0 (相当于 256)，支持的数据类型为 INT。

## 返回值说明

返回哈希函数的计算结果，数据类型为 VARCHAR。如果任意一个输入参数为 NULL，结果返回 NULL。如果 `hash_length` 不在参数说明中的取值范围内，结果返回 NULL。

## 示例

```Plain Text
mysql> select sha2('abc',224);
+----------------------------------------------------------+
| sha2('abc', 224)                                         |
+----------------------------------------------------------+
| 23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7 |
+----------------------------------------------------------+
1 row in set (0.01 sec)

mysql> select sha2('abc', 384);
+--------------------------------------------------------------------------------------------------+
| sha2('abc', 384)                                                                                 |
+--------------------------------------------------------------------------------------------------+
| cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7 |
+--------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select sha2('abc', 1),sha2('abc', null), sha2(null, 384);
+----------------+-------------------+-----------------+
| sha2('abc', 1) | sha2('abc', NULL) | sha2(NULL, 384) |
+----------------+-------------------+-----------------+
| NULL           | NULL              | NULL            |
+----------------+-------------------+-----------------+
1 row in set (0.01 sec)
```
